<?php

/**
   * Classe utilisée pour établir la connexion à une base de données
   * MySQLPerformances est une classe permettant de se connecter à la base de données. Cette classe est appelée chaque fois qu'un accès à la base a lieu.
   */
class clsMySQL
{
  // Id de la connexion
  private $id;
  // Adresse du serveur distant
  private $host;
  // Nom d'utilisateur pour la base de données
  private $user;
  // Password pour la base de données
  private $pass;
  // Nom de la base de données
  private $base;

  function __construct ($host, $user, $pass, $base)
  {
    $this->id = null;
    $this->host = $host;
    $this->base = $base;
    $this->user = $user;
    $this->pass = $pass;
  }

  // Test de connexion au serveur
  public function isConnected ()
  {
    return is_resource($this->id);
  }

  // Test de connexion au serveur + base sélectionnée
  public function isValid ()
  {
    return $this->isConnected() && !is_null($this->base);
  }

  // Connexion au serveur
  public function connect()
  {
    $this->id = mysql_connect($this->host, $this->user, $this->pass);
    if ($this->isConnected()) {
		$resultat = mysql_select_db($this->base, $this->id);
    }
    return $this->isValid();	
  }

  // Déconnexion du serveur
  public function disconnect ()
  {
    if (@mysql_close($this->id))
    {
      $this->id = null;
    }
    return is_null($this->id);
  }

  // Exécution d'une requête
  public function query ($query)
  {
    $result = false;
    $numrows = 0;
    if ($this->isConnected())
    {
      // Exécution de la requête
      $result = @mysql_query($query, $this->id);

      // Succès de l'exécution
      if ($result === true) {
        $numrows = mysql_affected_rows();
      }
      // Succès de l'exécution avec retour d'informations
      elseif (is_resource($result)) {
        $numrows = mysql_num_rows($result);
	  }
	if ($numrows == 0) { $result = null; }
	$ret = array (	'Result' => $result,
					'Error' => mysql_error());
    return $ret;
  }
 }
};
?>
